package org.bspv.pharma.web.bean.node;

import java.util.List;

import org.bspv.pharma.web.bean.node.visitor.Visitor;

/**
 * Interface pour l'affichage arborescent
 * @author guillaume
 *
 */
public interface Node extends Comparable<Node>{

	//GETTERS AND SETTERS
	/**
	 * 
	 */
	Long getId();
	
	/**
	 * 
	 * @return
	 */
	List<Node> getChildren();
	/**
	 * 
	 * @param children
	 */
	void setChildren(List<Node> children);
	/**
	 * 
	 * @return
	 */
	String getName();
	/**
	 * 
	 * @param name
	 */
	void setName(String name);
	
/////////////
	Node searchNode(Long id, Class<? extends Node> _class);
	
	void accept(Visitor visitor);
	
	Visitor getVisitor();
	
	String toString();
}
